package com.cskayan.javase.object._5finalize;

import java.util.Scanner;

/**
 * finalize方法设计的目的是，为了方便程序员自动的进行对象所占用系统资源的释放，
 *      但是由于GC的不确定性，这种设计目的是实现不了的
 * 实际开发，对象所占用的系统资源的释放，需要依赖于程序员手动完成
 * 强调：
 *      请大家在做IO操作，网络操作，数据库操作等需要占用额外系统资源的场景
 *      一定不要忘记手动释放资源
 *
 * @since 10:43
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {

    public static void main(String[] args) {
        /*new Student();
        // 通知GC进行垃圾回收
        System.gc();*/

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个int整数：");
        int num = sc.nextInt();
        // 正常的Scanner使用，应该在用完后关闭它，释放该对象占用的系统资源
        sc.close();
        System.out.println(num);
        // sc.nextInt();
    }

}

class Student {
    @Override
    protected void finalize() throws Throwable {
        System.out.println("模拟系统资源释放！");
    }
}